GROUP BY û przyk│ad klauzuli

W tym przyk│adzie tworzona jest lista unikatowych nazw tytu│≤w i liczba pracownik≤w posiadaj╣cych dany tytu│.

W tym przyk│adzie wywo│ywana jest procedura WyliczPola, kt≤r╣ mo┐na znaleƒµ w przyk│adzie dotycz╣cym instrukcji SELECT.

Sub GroupByX1()

    Dim dbs As Database, rst As Recordset

    ' Zmodyfikuj ten wiersz tak, by £cie┐ka wskazywa│a

    ' na rzeczywist╣ bazΩ danych Northwind.

    Set dbs = OpenDatabase("Northwind.mdb")

    ' Dla ka┐dego tytu│u znajdƒ liczbΩ

    ' pracownik≤w posiadaj╣cych ten tytu│.

    Set rst = dbs.OpenRecordset("SELECT Tytu│, " _

        & "Count([Tytu│]) AS Licznik " _

        & "FROM Pracownicy GROUP BY Tytu│;")

    

    ' Zape│nij obiekt Recordset.

    rst.MoveLast

    

    ' Wywo│aj procedurΩ WyliczPola w celu

    ' wydrukowania zawarto£ci obiektu Recordset. Przeka┐ obiekt

    ' Recordset i wymagan╣ szeroko£µ pola.

    WyliczPola rst, 25

    dbs.Close

End Sub

W tym przyk│adzie dla ka┐dego tytu│u znajdowana jest liczba pracownik≤w w stanie Waszyngton posiadaj╣cych ten tytu│.

Sub GroupByX2()

    Dim dbs As Database, rst As Recordset

    ' Zmodyfikuj ten wiersz tak, by £cie┐ka wskazywa│a

    ' na rzeczywist╣ bazΩ danych Northwind.

    Set dbs = OpenDatabase("Northwind.mdb")

    

    ' Dla ka┐dego tytu│u znajdƒ liczbΩ

    ' pracownik≤w posiadaj╣cych ten tytu│.

' Bierz pod uwagΩ tylko tych pracownik≤w, kt≤rzy

    ' pracuj╣ w Waszyngtonie.

    Set rst = dbs.OpenRecordset("SELECT Tytu│, " _

        & "Count(Tytu│) AS Licznik " _

        & "FROM Pracownicy WHERE Region = 'WA' " _

        & "GROUP BY Tytu│;")

    

    ' Zape│nij obiekt Recordset.

    rst.MoveLast

    ' Wywo│aj procedurΩ WyliczPola w celu

    ' wydrukowania zawarto£ci obiektu Recordset. Przeka┐ obiekt

    ' Recordset i wymagan╣ szeroko£µ pola.

    WyliczPola rst, 25

    dbs.Close

End Sub